/**
 * 
 */
package com.pe.pgn.clubpgn.dao;

import java.util.List;
import java.util.Map;

import com.pe.pgn.clubpgn.domain.ClpbEstacion;
import com.pe.pgn.clubpgn.domain.ClpbProducto;
import com.pe.pgn.clubpgn.domain.ClpmPromocionConsumo;
import com.pe.pgn.clubpgn.domain.ClpmVenta;
import com.pe.pgn.clubpgn.domain.beans.BNTipoVentaManual;

/**
 * @author Edwin Farfan
 */

@SuppressWarnings("unchecked")
public interface VentaDao {
	
	public List<Map<String,Object>> busquedaClientes(String nroDocumento, String nombres,String deCodigoTarjeta);
	
	public List<ClpmVenta> obtenerVentasActivas();

	public ClpmVenta obtenerVenta(Long id);
	
	public List<ClpbProducto> listadoProductos();
	
	public List<ClpmPromocionConsumo> listadoPromocionConsumo();
	
	public Map guardarVenta(ClpmVenta venta,boolean anulada) throws Exception;
	
	public void eliminarVentaManual(ClpmVenta venta);
	
	public List<ClpbEstacion> listadoEstaciones();
	 
	public List<ClpmVenta> busquedaVentas(String recibo, String fechaVentaInicio,String fechaVentaFin,String fechaCreacionInicio,String fechaCreacionFin, String estacion, String placa,String deCliente,
			 String coCodigoTarjetaPersona,
			 String deNumeroDocumento);

	public List<BNTipoVentaManual> obtenerTiposVentaManual();

	public List<ClpmVenta> listarVentasActivasPorCliente(String coClientePersona);

	public List<ClpmVenta> buscarVentasActivasPorCliente(
			String coClientePersona, String coEstacionID,
			String iniFechaVentaID, String finFechaVentaID, String dePlacaID,
			String vaPrecioVentaIniID, String vaPrecioVentaFinID,
			String stOnlineID, String stVentaID);

	public List<ClpbEstacion> listarEstaciones(boolean addItemDefault);

	public List<ClpmVenta> buscarVentas(int firstResult, int maxResults,
			String orderBy, boolean ascending, String[] filters);

	public int obtenerNumeroVentas(String[] filters);
	
}

